<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

namespace WebtopModule\DesktopModule;
use WebtopModule\DesktopModule\QuickLaunch;

/**
 *  interface for DesktopManager
 *
 *
 * @author Petr
 */
interface IDesktopManager {

    /**
     * The implementation of Desktop manager has to have
     * two private attributes: $userId and $desktopId
     * and Constructor with two parameters (userId and desktopId)
     * then most of methods work with this userId and desktopId while "databasing around"
     */

    //return ArrayList of desktops completely filled with Windows icons and so on (difficult SQL will show you)
    function getAllDesktops();
    //return Desktop with this id completely filled with data
    function getDesktop();

    function loadDesktop();

    // are shortcuts for desktop getters - it is used for example when you only add quick launches
    // then you want to return quick launches
    function loadQuickLaunchesForDesktop();
    function loadWindowsForDesktop();
    function loadIconsForDesktop();
    function loadStartMenusForDesktop();

    // returns arraylist of the type for ex. quicklaunches... use getQLFD (declared 6 lines upper)
    function addQuickLaunch(QuickLaunch $ql);
    function updateQuickLaunch(QuickLaunch $ql);
    function removeQuickLaunch(QuickLaunch $ql);
    function addIcon(Icon $icon);
    function updateIcon(Icon $icon);
    function removeIcon(Icon $icon);
    function addWindow(Window $window);
    function updateWindow(Window $window);
    function removeWindow(Window $window);
    function addStartMenu(StartMenu $sm);
    function updateStartMenu(StartMenu $sm);
    function removeStartMenu(StartMenu $sm);
}
